package com.csc.contact.checkbill.service;


import com.csc.contact.checkbill.entity.CheckLog;
import com.csc.contact.checkbill.mapper.CheckLogMapper;
import com.hollycrm.hollybeacons.system.db.mybatis.support.BaseServiceImpl;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * author zhanglei
 * createDate 2019-7-3
 * Description 对账文件日志信息操作类
 */
@Service("checklogService")
public class CheckLogServiceImpl extends BaseServiceImpl<CheckLogMapper, CheckLog> {
    private final static Logger LOGGER = Logger.getLogger(CheckLogServiceImpl.class);

    /**
     * 从对账日志信息表中获取对账失败的记录信息
     *
     * @return
     */
    public List<CheckLog> queryFailCheckInfo() {
        return this.baseMapper.queryFailCheckInfo();
    }

    /**
     * 获取对账日志信息表中最大的日期
     *
     * @return
     */
    public String queryMaxDate() {
        return this.baseMapper.queryMaxDate();
    }

    /**
     * 更新对账日志信息表中的对账状态
     *
     * @param params
     */
    public void updateCheckLog(Map params) {
        this.baseMapper.updateCheckLog(params);
    }

    public void updateAllCheckLog(String checkDay) {
        try {
            this.baseMapper.updateAllCheckLog(checkDay);
        } catch (Exception e) {
            LOGGER.info("更新逻辑日当天的对账状态出错", e);
        }
    }

    /**
     * 对账完成后，获取对账完成或者成功的省份记录，出文件推送给号卡
     *
     * @return
     */
    public List<CheckLog> querySucCheckInfo(String checkDay) {
        return this.baseMapper.querySucCheckInfo(checkDay);
    }

    /**
     * 对账前插入所有省份的对账日志信息记录
     *
     * @param checkLogs
     */
    public void saveCheckLogInfo(List<CheckLog> checkLogs) {
        try {
            LOGGER.info("插入对账日志返回结果===" + this.baseMapper.saveCheckLogInfo(checkLogs));
        } catch (Exception e) {
            LOGGER.info("插入省份对账日志记录出错", e);
        }
    }

}
